В условиях быстро развивающейся цифровой экономики, трансформация управления внешнеэкономической деятельностью транснациональных корпораций (ТНК) приобретает особую актуальность. Исследование направлено на анализ ключевых факторов, оказывающих влияние на управление ВЭД ТНК в США, с использованием множественного регрессионного и кластерного анализа. Основываясь на эмпирических данных о капиталовложениях в ИТ, количестве персонала, объеме экспорта и уровне автоматизации бизнес-процессов, исследование выявляет структуру и характер взаимосвязей этих факторов. Результаты работы предоставляют глубокое понимание текущего состояния и тенденций в управлении ВЭД ТНК, а также предлагают рекомендации по оптимизации стратегий в контексте цифровой экономики.
Цифровая экономика радикально меняет ландшафт международного бизнеса, предлагая новые возможности и вызовы для транснациональных корпораций (ТНК). ВЭД является ключевым аспектом деятельности ТНК, определяющим их конкурентоспособность на мировом рынке. Эффективное управление ВЭД в условиях цифровизации требует от корпораций гибкости, способности к инновациям и стратегического планирования.
Настоящее исследование ориентировано на выявление и анализ факторов, влияющих на управление ВЭД ТНК в США, в рамках текущих условий цифровой экономики. Множественный регрессионный анализ и кластерный анализ применяются для идентификации статистически значимых зависимостей и группировки ТНК по схожим характеристикам управления ВЭД. Целью исследования является предоставление комплексного анализа, который поможет ТНК оптимизировать свои стратегии ВЭД для достижения лучших результатов в динамично меняющейся цифровой среде.
Через призму анализа данных о капиталовложениях в ИТ, количестве персонала, объеме экспорта и уровне автоматизации бизнес-процессов, исследование стремится сформировать рекомендации для ТНК. Эти рекомендации будут направлены на усиление их позиций на мировом рынке, улучшение эффективности управления ВЭД и адаптацию к требованиям цифровой экономики.
Исследование базируется на актуальной статистике и аналитических данных, обеспечивая надежную основу для разработки стратегических решений в области управления ВЭД ТНК.
* Сформулировать рекомендации для ТНК по оптимизации стратегий управления ВЭД на основе выявленных зависимостей и характеристик кластеров.
* Оценить потенциальное влияние цифровой трансформации на будущие тенденции ВЭД ТНК.
Ключевые слова: выручка от продаж, цифровая экономика, цифровизация, объем экспорта, ТНК, капиталовложения в ИТ, внешнеэкономическая деятельность, товарооборот.
1. Влияние цифровой экономики на ВЭД ТНК:
2. Факторы, влияющие на ВЭД ТНК в цифровой экономике:
3. Региональные особенности ВЭД ТНК:
4. Анализ и прогнозирование ВЭД ТНК:
1. Apple:
2. Exxon Mobil:
3. IBM:
4. Walmart:
5. Chevron:
6. General Electric:
7. Google:
8. AT&T:
9. Microsoft:
10. Amazon:
11. Meta:
12. Intel:
13. JPMorgan Chase:
14. Honeywell:
15. United Technologies:
16. Coca-Cola:
17. General Motors:
18. Ford Motor Company:
19. McDonald’s:
20. Starbucks:
21. Pfizer:
22. Costco:
23. Marriott International:
24. Hilton Worldwide:
25. The Walt Disney Company:
26. Kraft Heinz:
Регрессионный анализ — набор статистических методов исследования влияния одной или нескольких независимых переменных \(X_1,X_2,..X_y,_;\) на зависимую переменную
Независимые переменные иначе называют регрессорами или предикторами, а зависимые переменные — критериальными или регрессантами. Терминология зависимых и независимых переменных отражает лишь математическую зависимость переменных (корреляцию), а не причинно-следственные отношения.
Наиболее распространённый вид регрессионного анализа — линейная регрессия, когда находят линейную функцию, которая, согласно определённым математическим критериям, наиболее соответствует данным
Цели регрессионного анализа - Предсказание значения зависимой переменной с помощью независимых переменных. - Определение вклада отдельных независимых переменных в вариацию зависимой переменной. - Регрессионный анализ нельзя использовать для определения наличия связи между переменными, поскольку наличие такой связи и есть предпосылка для применения этого вида анализа.
Множественная регрессия — это метод в статистике, позволяющий оценить взаимосвязи между двумя или более предикторами (независимыми переменными) и зависимой переменной. Этот метод расширяет простую линейную регрессию, позволяя включать в модель множество переменных, чтобы лучше понимать, как каждая из них влияет на предсказываемое значение.
Предположим, мы имеем набор данных с \(p\) предикторами \(X_1, X_2, ..., X_p\) и одной зависимой переменной \(Y\). Модель множественной регрессии будет иметь вид:
\[ Y_i = \beta_0 + \beta_1 X_{i1} + \beta_2 X_{i2} + ... + \beta_p X_{ip} + \varepsilon_i \]
где: - \(Y_i\) — значение зависимой переменной для \(i\)-го наблюдения. - \(X_{ij}\) — значение \(j\)-го предиктора для \(i\)-го наблюдения. - \(\beta_j\) — коэффициенты регрессии, которые измеряют изменение зависимой переменной при изменении соответствующего предиктора на одну единицу. - \(\beta_0\) — свободный член или константа, представляющая собой значение \(Y\) при всех \(X_j = 0\). - \(\varepsilon_i\) — ошибка модели для \(i\)-го наблюдения, предполагается, что \(\varepsilon_i\) имеют нормальное распределение с нулевым средним и постоянной дисперсией \(\sigma^2\).
Коэффициенты \(\beta_j\) обычно оцениваются с помощью метода наименьших квадратов, который минимизирует сумму квадратов остатков (разниц между наблюдаемыми и предсказанными значениями \(Y_i\)):
\[ \text{minimize} \sum_{i=1}^{N} \varepsilon_i^2 = \sum_{i=1}^{N} (Y_i - \beta_0 - \beta_1 X_{i1} - ... - \beta_p X_{ip})^2 \]
Решение этой задачи минимизации дает оценки коэффициентов \(\hat{\beta_j}\), которые представляют собой наилучшие линейные несмещенные оценки (BLUE) коэффициентов модели при выполнении предпосылок Гаусса-Маркова.
Чтобы проверить значимость каждого коэффициента, обычно используют t-тесты, где нулевая гипотеза \(H_0\): \(\beta_j = 0\) (предиктор \(X_j\) не оказывает влияния на \(Y\)) против альтернативной гипотезы \(H_a\): \(\beta_j \neq 0\). Если p-значение теста меньше заданного уровня значимости (например, 0.05), нулевая гипотеза отвергается, и можно сделать вывод о статистической значимости коэффициента.
Для того, чтобы оценки коэффициентов были BLUE, данные должны удовлетворять нескольким предпосылкам: - Линейность взаимосвязи между зависимыми и независимыми переменными. - Независимость ошибок (нет автокорреляции). - Гомоскедастичность (постоянная дисперсия ошибок). - Нормальное распределение ошибок. - Отсутствие мультиколлинеарности между предикторами.
Для проверки соответствия модели и её диагностики используются различные инструменты, такие как: - R-квадрат (R²): Доля объя
сненной моделью дисперсии зависимой переменной. Высокий R² указывает на то, что модель хорошо объясняет вариацию зависимой переменной. Однако важно отметить, что R² всегда увеличивается с добавлением предикторов, даже если они не улучшают модель.
Скорректированный R-квадрат: Учитывает количество предикторов и размер выборки, предоставляя более точную меру качества модели.
F-тест: Проверяет гипотезу о том, что все коэффициенты регрессии равны нулю. F-тест показывает, достоверно ли общая регрессия в целом.
t-тесты: Проверяют значимость отдельных регрессионных коэффициентов, позволяя оценить вклад каждого предиктора в модель.
Анализ остатков: Проводится для проверки нормальности, гомоскедастичности и независимости остатков. Диаграммы остатков против предсказанных значений, квантиль-квантильные диаграммы (Q-Q plots) и графики расстояния Кука помогают выявить потенциальные проблемы и выбросы.
Коэффициенты модели множественной регрессии обычно находятся методом наименьших квадратов, решая следующую систему уравнений:
\[ \mathbf{X}^\top \mathbf{X} \mathbf{\beta} = \mathbf{X}^\top \mathbf{Y} \]
где \(\mathbf{X}\) — это матрица наблюдений предикторов с добавленным столбцом единиц для интерсепта, \(\mathbf{\beta}\) — вектор коэффициентов регрессии, \(\mathbf{Y}\) — вектор наблюдений зависимой переменной. Решение дает оценки коэффициентов:
\[ \mathbf{\hat{\beta}} = (\mathbf{X}^\top \mathbf{X})^{-1} \mathbf{X}^\top \mathbf{Y} \]
Стандартные ошибки этих оценок можно найти через:
\[ \text{SE}(\mathbf{\hat{\beta}}) = \sqrt{\text{diag}((\mathbf{X}^\top \mathbf{X})^{-1} \cdot \text{MSE})} \]
где MSE (Mean Squared Error) — это оценка дисперсии остатков, определяемая как:
\[ \text{MSE} = \frac{1}{N - p - 1} \sum_{i=1}^{N} (Y_i - \hat{Y_i})^2 \]
Значения t-статистики для каждого коэффициента рассчитываются как:
\[ t = \frac{\hat{\beta}_j}{\text{SE}(\hat{\beta}_j)} \]
где \(\hat{\beta}_j\) — оценка \(j\)-го коэффициента, а \(\text{SE}(\hat{\beta}_j)\) — стандартная ошибка этой оценки.
Оценка качества уравнения регрессии и коэффициент R2
\[ R^2 = \frac{SS_{\text{regression}}}{SS_{\text{total}}} = \frac{\sum{(Y_i - \bar{Y})^2}}{\sum{(Y_i - \bar{Y})^2}} \] >Коэффициент множественной детерминации R-квадрат показывает, какую долю изменчивости (можно выразить в процентах) зависимой переменной (Y) объясняет независимая переменная (регрессионная модель).
Под качеством уравнения регрессии понимается степень близости (соответствия) рассчитанных по данному уравнению значений признака-результата f(x) фактическим (наблюдаемым) значениям у.
Чем ближе R-квадрат к 1 ,тем выше качество регрессионной модели.
Среднее значение (математическое ожидание) случайной составляющей равно нулю: \(E(\varepsilon_i) = 0\)
Дисперсия случайной составляющей является постоянной: \(E(\varepsilon_i^2) = \sigma^2\)
Значения случайной составляющей статистически независимы (некоррелированы) между собой: \(E(\varepsilon_i \varepsilon_j) = 0, i \neq j\)
Условие существования обратной матрицы \((X^TX)^{-1}\): \(\det(X^TX)^{-1} \neq 0\)
Число наблюдений должно превышать число параметров: \(\text{rank}(X) = p + 1 < n\)
Случайная составляющая имеет нормальный закон распределения (с математическим ожиданием равным нулю): \(\varepsilon \sim N(0, \sigma^2)\)
При использовании множественного регрессионного анализа следует учитывать эффект мультиколлинеарности. Мультиколлинеарность - это наличие линейной зависимости между независимыми переменными множественного регрессионного анализа. Наличие мультиколлинеарности приводит к неточности оценок, в частности повышенной дисперсии этих оценок. VIF-анализ (“variance inflation factor”) - это анализ фактора инфляции дисперсии, чем он выше для j-го предиктора, тем сильнее линейная связь между этим и остальными предикторами. В приведенной ниже формуле \(R^2_j\) - коэффициент детерминации j-го предиктора относительно остальных. (R-analytics.blogspot,2012)
\[ VIF = \frac{1}{1 - R^2_j} \]
Принято считать значение \(VIF > 5\) как показатель наличия мультиколлинеарности.
Кластерный анализ предназначен для разбиения совокупности объектов на однородные группы (кластеры или классы). Это задача многомерной классификации данных.
Метод k-средних используется для кластеризации данных на основе алгоритма разбиения векторного пространства на заранее определенное число кластеров k. Алгоритм представляет собой итерационную процедуру, в которой выполняются следующие шаги
Кластеризация методом K-средних — это популярный статистический метод для группировки объектов на основе характеристик, делая внутригрупповые объекты более схожими друг с другом, чем с объектами из других групп. Он используется в различных областях, включая машинное обучение, обработку изображений, маркетинг и биоинформатику.
Допустим, у нас есть набор данных, состоящий из \(N\) объектов, и мы хотим разделить его на \(K\) кластеров. Метод K-средних работает следующим образом:
Инициализация: Выбирается \(K\) начальных центров кластеров (центроидов), часто случайным образом из набора данных.
Присваивание к кластерам: Каждый объект в наборе данных присваивается к ближайшему центроиду. Это делается путем минимизации евклидова расстояния между объектом и центроидом.
Евклидово расстояние между двумя точками \(p\) и \(q\) в многомерном пространстве с координатами \(p = (p_1, p_2, ..., p_n)\) и \(q = (q_1, q_2, ..., q_n)\) определяется формулой:
\[ d(p, q) = \sqrt{(q_1 - p_1)^2 + (q_2 - p_2)^2 + ... + (q_n - p_n)^2} \]
Пересчет центроидов: Центроиды обновляются так, чтобы стать центром тяжести всех объектов, присвоенных к кластеру.
Новое положение центроида \(j\) вычисляется как среднее всех точек \(x_i\) в кластере:
\[ c_j = \frac{1}{|S_j|} \sum_{x_i \in S_j} x_i \]
Где \(S_j\) — это множество всех точек, присвоенных к кластеру \(j\).
Итерация: Шаги 2 и 3 повторяются до тех пор, пока присвоение объектов к кластерам не перестанет изменяться или изменения не будут минимальными (например, до тех пор, пока не будет достигнута определенная степень сходимости).
Метод K-средних стремится минимизировать внутрикластерную сумму квадратов (Within-Cluster Sum of Squares, WCSS), которая является функцией потерь:
\[ J = \sum_{j=1}^{K} \sum_{x_i \in S_j} \| x_i - c_j \|^2 \]
где \(J\) — это общая сумма квадратов расстояний от каждой точки до центроида ее кластера. Цель состоит в том, чтобы найти множество центроидов \(C = \{ c_1, c_2, ..., c_K \}\), которое минимизирует \(J\).
Количество кластеров \(K\) обычно выбирается на основе предварительных знаний о данных или определяется с помощью различных методов, таких как метод “локтя”, где выбирается такое \(K\), при котором увеличение количества кластеров не приводит к значительному уменьшению величины \(J\), или метод “силуэта”, который оценивает, насколько хорошо объекты разделены между кластерами.
Преимущества** K-средних: - Простота реализации и понимания. - Относительно эффективен с точки зрения вычислений. - Хорошо работает с крупными наборами данных.
Недостатки K-средних: - Необходимо заранее задать число кластеров \(K\), которое не всегда известно. - Чувствителен к выбору начальных центроидов. - Не всегда справляется с кластерами неправильной формы или различного размера и плотности. - Результаты могут быть различными при различных запусках из-за случайного выбора начальных центроидов.
Цель K-средних заключается в минимизации суммарного квадратичного отклонения точек каждого кластера от их центроида. Если обозначить через \(x^{(i)}\) точку данных и через \(\mu_k\) центроид кластера, к которому принадлежит эта точка, то целевая функция \(J\) (иногда называемая инерцией) выглядит следующим образом:
\[ J = \sum_{i=1}^{N} \sum_{k=1}^{K} r_{ik} \| x^{(i)} - \mu_k \|^2 \]
где \(r_{ik}\) — это бинарный индикатор, который определяет, принадлежит ли точка \(x^{(i)}\) к кластеру \(k\) (1 если принадлежит, иначе 0).
Обновление центроидов происходит путем усреднения всех точек, отнесенных к кластеру:
\[ \mu_k = \frac{1}{|S_k|} \sum_{i \in S_k} x^{(i)} \]
где \(|S_k|\) — это количество точек в кластере \(k\), а суммирование ведется по всем точкам в кластере \(k\).
Алгоритм: 1. Инициализация: Выбрать \(K\) начальных центроидов (обычно случайно из точек данных). 2. Присваивание кластеров: Для каждой точки данных найти ближайший центроид и отнести точку к соответствующему кластеру. 3. Обновление центроидов: Пересчитать центроиды как центры тяжести точек в каждом кластере. 4. Повторение: Повторять шаги 2 и 3 до сходимости (то есть до тех пор, пока присваивание кластеров не перестанет меняться).
Сходимость достигается, когда присваивание кластеров не изменяется между итерациями или изменения в целевой функции \(J\) становятся незначительными.
K-средних — мощный инструмент кластеризации, но его результаты зависят от формы данных и выбора начальных центроидов. Он наиболее эффективен, когда кластеры имеют сферическую форму и примерно одинаковый размер.
library(readxl)
data_for_fw <- read_excel("C:/Users/HP/Desktop/data_for_fw.xlsx")
</center>
data_new=data_for_fw <- read_excel("C:/Users/HP/Desktop/data_for_fw.xlsx")
summary(data_new)
## Sales_revenue Invest_it Personal Export
## Min. : 6.96 Min. : 0.50 Min. : 36000 Min. : 4.70
## 1st Qu.: 58.34 1st Qu.: 3.00 1st Qu.: 103000 1st Qu.: 15.40
## Median :115.04 Median : 4.50 Median : 176000 Median : 31.30
## Mean :172.39 Mean :17.33 Mean : 297041 Mean : 51.77
## 3rd Qu.:239.43 3rd Qu.:24.45 3rd Qu.: 204000 3rd Qu.: 54.80
## Max. :611.29 Max. :93.84 Max. :2300000 Max. :238.10
## Automation Industry
## Length:29 Length:29
## Class :character Class :character
## Mode :character Mode :character
##
##
##
str(data_new)
## tibble [29 × 6] (S3: tbl_df/tbl/data.frame)
## $ Sales_revenue: num [1:29] 383.3 344.6 61.9 611.3 200.9 ...
## $ Invest_it : num [1:29] 16.78 7.67 31.66 24.45 4.87 ...
## $ Personal : num [1:29] 154000 75600 352600 2300000 133700 ...
## $ Export : num [1:29] 205.3 238.1 48.9 14.5 160.2 ...
## $ Automation : chr [1:29] "High" "Average" "High" "Average" ...
## $ Industry : chr [1:29] "Technology" "Oil and Gas" "Technology" "Retail" ...
#Показываем первые переменные нашей таблицы
head(data_new)
## # A tibble: 6 × 6
## Sales_revenue Invest_it Personal Export Automation Industry
## <dbl> <dbl> <dbl> <dbl> <chr> <chr>
## 1 383. 16.8 154000 205. High Technology
## 2 345. 7.67 75600 238. Average Oil and Gas
## 3 61.9 31.7 352600 48.9 High Technology
## 4 611. 24.4 2300000 14.5 Average Retail
## 5 201. 4.87 133700 160. Average Oil and Gas
## 6 68.0 33.2 174000 82.4 High Industrial
# Убедимся, что dplyr загружен
if (!require('dplyr')) {
install.packages('dplyr')
library(dplyr)
}
## Загрузка требуемого пакета: dplyr
##
## Присоединяю пакет: 'dplyr'
## Следующие объекты скрыты от 'package:stats':
##
## filter, lag
## Следующие объекты скрыты от 'package:base':
##
## intersect, setdiff, setequal, union
# Преобразование данных
data_new <- data_new %>%
mutate(
Sales_revenue = as.numeric(gsub(",", "", Sales_revenue)), # Удаление запятых и преобразование в числовой формат
Invest_it = as.numeric(gsub(",", "", Invest_it)), # Аналогично для Invest_it
Automation = as.factor(Automation), # Преобразование в фактор
Personal = as.integer(Personal),
Industry = as.factor(Industry) # Преобразование в фактор
)
# Проверим структуру измененного tibble
str(data_new)
## tibble [29 × 6] (S3: tbl_df/tbl/data.frame)
## $ Sales_revenue: num [1:29] 383.3 344.6 61.9 611.3 200.9 ...
## $ Invest_it : num [1:29] 16.78 7.67 31.66 24.45 4.87 ...
## $ Personal : int [1:29] 154000 75600 352600 2300000 133700 174000 160000 392000 204000 181000 ...
## $ Export : num [1:29] 205.3 238.1 48.9 14.5 160.2 ...
## $ Automation : Factor w/ 2 levels "Average","High": 2 1 2 1 1 2 2 1 1 2 ...
## $ Industry : Factor w/ 13 levels "Automotive","Finance",..: 11 7 11 10 7 5 11 2 12 11 ...
Для иследования были отобраны двадцать девять крупных компаний ТНК США в чиcле которых:Apple,Exxon Mobile,IMB,Wall-Mart,Chevron,General Electric,Google,Berkshire Hathway,AT&Inc,Microsoft,Amazon,Meta,Intel,JPMorgan,Chase,Honeywell,United Technologies,Coca-Cola,General Motors,Ford Motor Company,McDonald’s,Starbucks, Pfizer,Costco,Marriott International,Hilton Worldwide,The Walt Disney Company,Kraft Heinz,Goldman Sachs,Uber.по 6 признакам
1.Sales_revenue - выручка от продаж за 2023 год.данные взяты из официалььных сайтов ТНК.это количественная переменная, измеряемая в шкале отношений.
2.Invest_it -доля капитавложения в информационные технологии за 2023 год.это количественная переменная, измеряемая в шкале отношений.
3.Personal - количество персонала в ТНК.Количественоо-дискретная величина.
4.Export - обьем экспорта в ТНК. это количественная переменная, измеряемая в шкале
5.Automation - уровень автоматизации в ТНК.с 2уровнями, High(Компания использует передовые технологии, такие как RPA ( роботизированная автоматизация процессов ), искусственный интеллект и машинное обучение для автоматизации большого количества бизнес-процессов) Average(Компания использует некоторую степень автоматизации, но не на самом передовом уровне. RPA может использоваться для автоматизации рутинных задач, но многие процессы по-прежнему выполняются вручную.)
6.Industry К какой индустрии относится та или иная компания.Факторная величина с 13 уровнями(Technology,Finance,Industrial,Retail,Automotive,Food and Beverage и т.д )
# Количество наблюдений и признаков
cat("Количество наблюдений:", nrow(data_new), "\n")
## Количество наблюдений: 29
cat("Количество признаков:", ncol(data_new), "\n")
## Количество признаков: 6
summary(data_new)
## Sales_revenue Invest_it Personal Export
## Min. : 6.96 Min. : 0.50 Min. : 36000 Min. : 4.70
## 1st Qu.: 58.34 1st Qu.: 3.00 1st Qu.: 103000 1st Qu.: 15.40
## Median :115.04 Median : 4.50 Median : 176000 Median : 31.30
## Mean :172.39 Mean :17.33 Mean : 297041 Mean : 51.77
## 3rd Qu.:239.43 3rd Qu.:24.45 3rd Qu.: 204000 3rd Qu.: 54.80
## Max. :611.29 Max. :93.84 Max. :2300000 Max. :238.10
##
## Automation Industry
## Average:17 Technology : 6
## High :12 Finance : 3
## Industrial : 3
## Retail : 3
## Automotive : 2
## Food and Beverage: 2
## (Other) :10
table(data_new$Automation)
##
## Average High
## 17 12
table(data_new$Industry)
##
## Automotive Finance Food and Beverage Hotels
## 2 3 2 2
## Industrial Media Oil and Gas Pharmaceuticals
## 3 1 2 1
## Restaurants Retail Technology Telecommunications
## 2 3 6 1
## Transportation
## 1
# Убедитесь, что ggplot2 установлен и загружен
if (!require('ggplot2')) {
install.packages('ggplot2')
library(ggplot2)
}
## Загрузка требуемого пакета: ggplot2
# Визуализация уровня автоматизации
ggplot(data_new, aes(x = Automation)) +
geom_bar(fill = "steelblue", color = "black") +
theme_minimal() +
labs(title = "Уровень автоматизации в ТНК США", x = "Уровень автоматизации", y = "Количество компаний")
# Визуализация отраслевой принадлежности
ggplot(data_new, aes(x = Industry)) +
geom_bar(fill = "darkred", color = "black") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
labs(title = "Отраслевая принадлежность ТНК США", x = "Отрасль", y = "Количество компаний")
if (!require('waffle')) {
install.packages('waffle')
library(waffle)
}
## Загрузка требуемого пакета: waffle
if (!require('dplyr')) {
install.packages('dplyr')
library(dplyr)
}
# Для уровня автоматизации
automation_data <- table(data_new$Automation) %>% as.data.frame()
colnames(automation_data) <- c("Level", "Count")
# Вафельная диаграмма для Automation
waffle_chart_automation <- waffle(automation_data$Count, rows=5, size=1,
colors=c("steelblue", "darkred"),
title="Уровень автоматизации в ТНК США",
xlab="1 квадрат = 1 компания") +
theme(plot.title = element_text(hjust = 0.5))
# Для отраслевой принадлежности
industry_data <- table(data_new$Industry) %>% as.data.frame()
colnames(industry_data) <- c("Industry", "Count")
# Ограничение количества отраслей для вафельной диаграммы из-за ограничений визуализации
# Выбор топ-5 отраслей для демонстрации
industry_data_top5 <- industry_data %>%
arrange(desc(Count)) %>%
head(5)
# Вафельная диаграмма для Industry
waffle_chart_industry <- waffle(industry_data_top5$Count, rows=5, size=1,
colors=rainbow(nrow(industry_data_top5)),
title="Топ-5 отраслей ТНК США",
xlab="1 квадрат = 1 компания") +
theme(plot.title = element_text(hjust = 0.5))
# Вывод диаграмм
print(waffle_chart_automation)
print(waffle_chart_industry)
Из представленных таблиц видно, что уровень автоматизации и принадлежность к определенной индустрии различается среди компаний в наборе данных:
Уровень автоматизации: Большинство компаний (17 из 29) имеют средний уровень автоматизации, что означает, что хотя они и используют некоторую автоматизацию для рутинных задач, передовые технологии не используются в полной мере. В то время как 12 компаний оценены как имеющие высокий уровень автоматизации, где роботизированная автоматизация процессов, искусственный интеллект и машинное обучение внедрены более активно.
Отраслевая принадлежность: Наибольшее количество компаний (6 из
# Анализ для Sales_revenue
summary(data_new$Sales_revenue)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 6.96 58.34 115.04 172.39 239.43 611.29
var(data_new$Sales_revenue)
## [1] 26773.85
IQR(data_new$Sales_revenue)
## [1] 181.085
range(data_new$Sales_revenue)
## [1] 6.960 611.289
ggplot(data_new, aes(x = Sales_revenue)) +
geom_histogram(aes(fill = ..count..), bins = 30, color = "black") +
geom_vline(aes(xintercept = mean(Sales_revenue)), color = "red", linetype = "dashed", size = 1) +
geom_vline(aes(xintercept = median(Sales_revenue)), color = "blue", linetype = "dotted", size = 1) +
scale_fill_gradient("Count", low = "skyblue", high = "blue") +
labs(title = "Гистограмма выручки от продаж", x = "Выручка от продаж", y = "Частота") +
theme_minimal()
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: The dot-dot notation (`..count..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(count)` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
# Загрузка необходимых библиотек
library(ggplot2)
library(ggbeeswarm)
# Создание точечного графика для Sales_revenue
ggplot(data_new, aes(x = factor(1), y = Sales_revenue)) +
geom_beeswarm(aes(color = Sales_revenue), size = 3, shape = 21, fill = "lightblue") +
scale_color_gradient(low = "blue", high = "red") +
theme_minimal() +
labs(title = "Точечный график выручки от продаж", x = "", y = "Выручка от продаж") +
theme(axis.title.x = element_blank(),
axis.ticks.x = element_blank(),
axis.text.x = element_blank())
ggplot(data_new, aes(x = "", y = Sales_revenue)) +
geom_boxplot(fill = "lightblue", color = "blue", outlier.color = "red", outlier.shape = 1) +
labs(title = "Диаграмма 'ящик с усами': Выручка от продаж",
x = "",
y = "Выручка от продаж") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5))
Анализируя предоставленные вами статистические данные по выручке от продаж (в миллиардах), можно сделать следующие выводы:
Разброс: Выручка от продаж среди рассматриваемых компаний значительно различается. Минимальная выручка составляет 6.96 миллиарда, в то время как максимальная — 611.29 миллиарда, что указывает на значительное разнообразие в размерах и доходности компаний.
Среднее и медиана: Средняя выручка составляет 172.39 миллиарда, что выше медианы в 115.04 миллиарда. Это указывает на наличие положительного смещения в распределении, возможно, из-за наличия небольшого числа компаний с очень высоким уровнем продаж, которые тянут среднее значение вверх.
Межквартильный размах (IQR): Межквартильный размах в 181.085 миллиарда свидетельствует о том, что 50% компаний имеют выручку в диапазоне примерно от 58 до 239 миллиардов, что еще раз подчеркивает разнообразие в объеме продаж среди компаний.
Дисперсия: Дисперсия выручки от продаж составляет 26773.85 миллиардов квадратных, что говорит о том, что значения выручки сильно варьируются от среднего значения.
# Анализ для Invest_it
summary(data_new$Invest_it)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.50 3.00 4.50 17.33 24.45 93.84
var(data_new$Invest_it)
## [1] 599.3475
IQR(data_new$Invest_it)
## [1] 21.45
range(data_new$Invest_it)
## [1] 0.50 93.84
ggplot(data_new, aes(x = Invest_it)) +
geom_histogram(aes(fill = ..count..), bins = 30, color = "black") +
geom_vline(aes(xintercept = mean(Invest_it)), color = "red", linetype = "dashed", size = 1) +
geom_vline(aes(xintercept = median(Invest_it)), color = "blue", linetype = "dotted", size = 1) +
scale_fill_gradient("Count", low = "lightgreen", high = "darkgreen") +
labs(title = "Гистограмма инвестиций в IT", x = "Инвестиции в IT", y = "Частота") +
theme_minimal()
ggplot(data_new, aes(x = "", y = Invest_it)) +
geom_boxplot(fill = "lightgreen", color = "darkgreen", outlier.color = "orange", outlier.shape = 1) +
labs(title = "Диаграмма 'ящик с усами': Инвестиции в IT",
x = "",
y = "Инвестиции в IT") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5))
Анализ данных о капиталовложениях в информационные технологии (Invest_it), предположительно в миллиардах, дает следующую картину:
Разброс: Капиталовложения в ИТ среди анализируемых компаний варьируются от 0.5 миллиарда до 93.84 миллиарда, что говорит о значительном различии в инвестициях между компаниями.
Среднее и медиана: Средние инвестиции составляют 17.33 миллиарда, что существенно выше медианы в 4.5 миллиарда. Это говорит о том, что некоторые компании инвестируют в ИТ гораздо больше среднего, что смещает среднее значение в сторону более высоких инвестиций.
Межквартильный размах (IQR): IQR в 21.45 миллиарда указывает на то, что половина компаний инвестирует между 3 и 24.45 миллиарда в ИТ. Это отражает существенное разнообразие инвестиционных стратегий компаний в отношении ИТ.
Дисперсия: Значение дисперсии 599.3475 миллиардов квадратных показывает, что инвестиции в ИТ сильно различаются среди компаний, что может свидетельствовать о различных подходах к инвестициям в технологии.
# Анализ для Personal
summary(data_new$Personal)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 36000 103000 176000 297041 204000 2300000
var(data_new$Personal)
## [1] 227055557512
IQR(data_new$Personal)
## [1] 101000
range(data_new$Personal)
## [1] 36000 2300000
library(ggplot2)
# Гистограмма для Personal с подписью среднего и медианы
ggplot(data_new, aes(x = Personal)) +
geom_histogram(aes(fill = ..count..), bins = 30, color = "black") +
geom_vline(aes(xintercept = mean(Personal), color = "Среднее"), linetype = "dashed", size = 1) +
geom_vline(aes(xintercept = median(Personal), color = "Медиана"), linetype = "dotdash", size = 1) +
scale_fill_gradient("Количество", low = "skyblue", high = "blue") +
scale_color_manual("", values = c("Среднее" = "red", "Медиана" = "green")) +
labs(title = "Гистограмма количества персонала", x = "Количество персонала", y = "Частота") +
theme_minimal()
# Диаграмма "ящик с усами" для Personal
ggplot(data_new, aes(y = Personal)) +
geom_boxplot(fill = "lightblue", color = "blue", outlier.shape = 21, outlier.fill = "red") +
labs(title = "Диаграмма 'ящик с усами' для количества персонала", y = "Количество персонала") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5))
library(ggbeeswarm)
# Точечная диаграмма для Personal
ggplot(data_new, aes(x = factor(1), y = Personal)) +
geom_beeswarm(aes(color = Personal), size = 3, shape = 21, fill = "lightblue") +
scale_color_gradient(low = "yellow", high = "red") +
labs(title = "Точечная диаграмма для количества персонала", x = "", y = "Количество персонала") +
theme_minimal() +
theme(axis.title.x = element_blank(),
axis.ticks.x = element_blank(),
axis.text.x = element_blank(),
plot.title = element_text(hjust = 0.5))
Анализ данных о количестве персонала (Personal) в
анализируемых компаниях показывает следующее:
Разброс: Численность персонала варьируется от 36,000 до 2,300,000, что указывает на значительные различия в размерах компаний.
Среднее и медиана: Среднее значение числа сотрудников составляет 297,041, что значительно выше медианы в 176,000. Это говорит о том, что в выборке присутствуют компании с очень большим количеством сотрудников, что искажает среднее значение в сторону больших чисел.
Межквартильный размах (IQR): Межквартильный размах составляет 101,000, что показывает, что половина компаний имеет количество персонала в пределах от 103,000 до 204,000.
Дисперсия: Очень высокое значение дисперсии в 227,055,557,512 подтверждает широкий разброс численности сотрудников между компаниями.
# Анализ для Export
summary(data_new$Export)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 4.70 15.40 31.30 51.77 54.80 238.10
var(data_new$Export)
## [1] 3389.745
IQR(data_new$Export)
## [1] 39.4
range(data_new$Export)
## [1] 4.7 238.1
library(ggplot2)
# Гистограмма для Export с подписью среднего и медианы
ggplot(data_new, aes(x = Export)) +
geom_histogram(aes(fill = ..count..), bins = 30, color = "black") +
geom_vline(aes(xintercept = mean(Export), color = "Среднее"), linetype = "dashed", size = 1) +
geom_vline(aes(xintercept = median(Export), color = "Медиана"), linetype = "dotdash", size = 1) +
scale_fill_gradient("Количество", low = "lightgreen", high = "darkgreen") +
scale_color_manual("", values = c("Среднее" = "red", "Медиана" = "blue")) +
labs(title = "Гистограмма объема экспорта", x = "Объем экспорта", y = "Частота") +
theme_minimal()
# Диаграмма "ящик с усами" для Export
ggplot(data_new, aes(y = Export)) +
geom_boxplot(fill = "lightgreen", color = "darkgreen", outlier.shape = 21, outlier.fill = "red") +
labs(title = "Диаграмма 'ящик с усами' для объема экспорта", y = "Объем экспорта") +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5))
# Требуется для точечной диаграммы
library(ggbeeswarm)
# Точечная диаграмма для Export
ggplot(data_new, aes(x = factor(1), y = Export)) +
geom_beeswarm(aes(color = Export), size = 3, shape = 21, fill = "lightgreen") +
scale_color_gradient(low = "lightblue", high = "navy") +
labs(title = "Точечная диаграмма для объема экспорта", x = "", y = "Объем экспорта") +
theme_minimal() +
theme(axis.title.x = element_blank(),
axis.ticks.x = element_blank(),
axis.text.x = element_blank(),
plot.title = element_text(hjust = 0.5))
Анализ данных о объеме экспорта (Export) для изучаемых
компаний представляет собой следующую картину:
Разброс: Объем экспорта меняется от 4.7 до 238.1 миллиардов, что показывает очень широкий диапазон величин экспорта среди компаний.
Среднее и медиана: Среднее значение объема экспорта составляет 51.77 миллиарда, при этом медиана равна 31.3 миллиарда. Наличие среднего значения, значительно превышающего медиану, может указывать на то, что распределение объема экспорта искажено в сторону нескольких компаний с очень высоким уровнем экспорта.
Межквартильный размах (IQR): Межквартильный размах в 39.4 миллиарда говорит о том, что 50% компаний имеют объем экспорта между примерно 15.4 и 54.8 миллиарда, что подтверждает значительную изменчивость экспортной деятельности.
Дисперсия: Значение дисперсии равно 3389.745 миллиардов квадратных, что отражает высокую степень изменчивости в объемах экспорта между компаниями.
pairs(data_new, col = "magenta4")
library(psych)
##
## Присоединяю пакет: 'psych'
## Следующие объекты скрыты от 'package:ggplot2':
##
## %+%, alpha
pairs.panels(data_new,col="blue")
# Установка и загрузка необходимых пакетов
if(!require('ggplot2')) {
install.packages('ggplot2');
library(ggplot2);
}
if(!require('GGally')) {
install.packages('GGally');
library(GGally);
}
## Загрузка требуемого пакета: GGally
## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
# Предполагается, что data_new - это ваш DataFrame с данными
# Выбор количественных переменных для анализа
quantitative_vars_new <- data_new[, c('Sales_revenue', 'Invest_it', 'Personal', 'Export')]
# Создание графика пар переменных
ggpairs(quantitative_vars_new,
lower = list(continuous = wrap("points", alpha = 0.7, color = "blue")), # Точечные диаграммы в нижней части
upper = list(continuous = wrap("cor", size = 5)), # Отображение коэффициентов корреляции в верхней части
diag = list(continuous = wrap("barDiag", fill = "violet"))) + # Гистограммы для диагональных панелей
ggplot2::theme_light() + # Применение светлой темы
ggplot2::theme(axis.text.x = ggplot2::element_text(angle = 45, hjust = 1)) # Наклон меток осей X
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
# Установка и загрузка пакета psych
if(!require('psych')) {
install.packages('psych');
library(psych);
}
# Предполагается, что data_new - это ваш DataFrame с данными
# Выбор количественных переменных для анализа
quantitative_vars_new <- data_new[, c('Sales_revenue', 'Invest_it', 'Personal', 'Export')]
# Вычисление матрицы корреляций для нового набора переменных
cor_matrix_new <- cor(quantitative_vars_new, use = "complete.obs")
# Вывод матрицы корреляций
print(cor_matrix_new)
## Sales_revenue Invest_it Personal Export
## Sales_revenue 1.0000000 0.1118135 0.4938038 0.3906569
## Invest_it 0.1118135 1.0000000 0.3139143 0.1068272
## Personal 0.4938038 0.3139143 1.0000000 -0.1314196
## Export 0.3906569 0.1068272 -0.1314196 1.0000000
Сильная связь между выручкой от продаж и количеством персонала: Коэффициент корреляции 0.4938038 указывает на умеренную положительную корреляцию между размером компании по численности персонала и её выручкой от продаж. Это может свидетельствовать о том, что крупные компании с большим штатом сотрудников часто имеют и больший объем продаж.
Связь между выручкой от продаж и объемом экспорта: Коэффициент корреляции 0.3906569 также указывает на наличие умеренной положительной связи между выручкой от продаж и объемом экспорта. Это может говорить о том, что компании с высоким уровнем продаж имеют лучшие возможности для экспорта или что активное участие в международной торговле способствует увеличению выручки.
Связь между инвестициями в IT и другими переменными: Инвестиции в IT имеют слабую положительную корреляцию с выручкой от продаж (0.1118135) и количеством персонала (0.3139143), что может указывать на то, что инвестиции в технологии важны, но не являются единственным фактором успеха компаний. Корреляция с объемом экспорта (0.1068272) также слабая, что предполагает, что вклад технологических инвестиций в экспортную активность может быть не столь очевиден.
Отрицательная связь между количеством персонала и объемом экспорта: Небольшая отрицательная корреляция (-0.1314196) может свидетельствовать о том, что в некоторых компаниях большая численность персонала не обязательно соответствует высокому уровню экспорта, что может быть обусловлено ориентацией на внутренний рынок или неэффективностью производственных процессов.
Оценить влияние капиталовложений в информационные технологии (ИТ), количества сотрудников,объема экспорта ТНК и уровня автоматизации бизнес-процессов на объем продаж .
# Предположим, что data_new содержит ваши данные
# Вычисление матрицы корреляций
cor_matrix_new <- cor(data_new[, c("Sales_revenue", "Invest_it", "Personal", "Export")])
# Вывод матрицы корреляций
print(cor_matrix_new)
## Sales_revenue Invest_it Personal Export
## Sales_revenue 1.0000000 0.1118135 0.4938038 0.3906569
## Invest_it 0.1118135 1.0000000 0.3139143 0.1068272
## Personal 0.4938038 0.3139143 1.0000000 -0.1314196
## Export 0.3906569 0.1068272 -0.1314196 1.0000000
# Убедимся, что пакеты установлены и загружены
library(ggplot2)
library(GGally)
# Настройка панелей для матрицы диаграмм рассеяния
panel_fn <- function(x, y, ...) {
points(x, y, pch = 21, bg = 'lightblue', cex = 1.2) # Изменение символов точек и их цвета
abline(lm(y ~ x), col = "red") # Добавление линии регрессии
}
# Создание матрицы диаграмм рассеяния с пользовательскими панелями для вашего набора данных
pairs(~Sales_revenue + Invest_it + Personal + Export, data = data_new, main = "Scatterplot Matrix",
panel = panel_fn, lower.panel = panel_fn, upper.panel = panel_fn,
pch = 21, bg = c("red", "green", "blue")[unclass(data_new$group)]) # Пример использования переменной 'group' для цветовой маркировки
## Warning: Unknown or uninitialised column: `group`.
# Загрузка необходимых пакетов
library(car)
## Загрузка требуемого пакета: carData
##
## Присоединяю пакет: 'car'
## Следующий объект скрыт от 'package:psych':
##
## logit
## Следующий объект скрыт от 'package:dplyr':
##
## recode
library(olsrr)
##
## Присоединяю пакет: 'olsrr'
## Следующий объект скрыт от 'package:datasets':
##
## rivers
# Построение модели множественной регрессии
model <- lm(Sales_revenue~ Personal + Invest_it + Export , data = data_new)
# Вывод результатов модели
summary(model)
##
## Call:
## lm(formula = Sales_revenue ~ Personal + Invest_it + Export, data = data_new)
##
## Residuals:
## Min 1Q Median 3Q Max
## -155.50 -85.61 -30.23 31.47 377.92
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 5.598e+01 3.744e+01 1.495 0.147363
## Personal 2.051e-04 5.352e-05 3.831 0.000763 ***
## Invest_it -8.503e-01 1.039e+00 -0.819 0.420717
## Export 1.357e+00 4.183e-01 3.243 0.003340 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 126.2 on 25 degrees of freedom
## Multiple R-squared: 0.4692, Adjusted R-squared: 0.4056
## F-statistic: 7.368 on 3 and 25 DF, p-value: 0.001066
# Исключаем наблюдения 10, 4 и 11 из данных
data_new_filtered <- data_new[-c(10, 4,3, 11), ]
# Перестраиваем модель линейной регрессии с обновленными данными
model_filtered <- lm(Sales_revenue~ Personal + Invest_it + Export, data = data_new_filtered)
# Проверяем результаты новой модели
summary(model_filtered)
##
## Call:
## lm(formula = Sales_revenue ~ Personal + Invest_it + Export, data = data_new_filtered)
##
## Residuals:
## Min 1Q Median 3Q Max
## -146.804 -58.371 -0.133 30.136 240.849
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -4.9624587 49.1040953 -0.101 0.920462
## Personal 0.0004858 0.0002151 2.258 0.034711 *
## Invest_it -0.1839341 0.8812687 -0.209 0.836682
## Export 1.2975620 0.3247096 3.996 0.000656 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 95.22 on 21 degrees of freedom
## Multiple R-squared: 0.4605, Adjusted R-squared: 0.3834
## F-statistic: 5.975 on 3 and 21 DF, p-value: 0.004134
# Шаговый отбор переменных
stepwise_selection <- ols_step_all_possible(model_filtered)
# Вывод результатов шагового отбора
print(stepwise_selection)
## Index N Predictors R-Square Adj. R-Square Mallow's Cp
## 3 1 1 Export 0.3238824762 0.294486062 5.317504
## 1 2 1 Personal 0.0499257423 0.008618166 15.981120
## 2 3 1 Invest_it 0.0001542917 -0.043317261 17.918446
## 5 4 2 Personal Export 0.4593742251 0.410226427 2.043562
## 6 5 2 Invest_it Export 0.3295009462 0.268546487 7.098808
## 4 6 2 Personal Invest_it 0.0502481858 -0.036092888 17.968569
## 7 7 3 Personal Invest_it Export 0.4604933680 0.383420992 4.000000
# Визуализация результатов шагового отбора
plot(stepwise_selection)
## Warning: The `guide` argument in `scale_*()` cannot be `FALSE`. This was deprecated in
## ggplot2 3.3.4.
## ℹ Please use "none" instead.
## ℹ The deprecated feature was likely used in the olsrr package.
## Please report the issue at <https://github.com/rsquaredacademy/olsrr/issues>.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
# Проверка всехвозможных других вариантов модели
k <- ols_step_best_subset(model_filtered);k
## Best Subsets Regression
## ----------------------------------------
## Model Index Predictors
## ----------------------------------------
## 1 Export
## 2 Personal Export
## 3 Personal Invest_it Export
## ----------------------------------------
##
## Subsets Regression Summary
## ------------------------------------------------------------------------------------------------------------------------------------------
## Adj. Pred
## Model R-Square R-Square R-Square C(p) AIC SBIC SBC MSEP FPE HSP APC
## ------------------------------------------------------------------------------------------------------------------------------------------
## 1 0.3239 0.2945 0.2282 5.3175 306.0412 234.8890 309.6978 259449.5210 11204.9597 471.5892 0.7937
## 2 0.4594 0.4102 0.1876 2.0436 302.4502 232.5606 307.3257 217335.5719 9713.6908 412.9971 0.6881
## 3 0.4605 0.3834 0.1147 4.0000 304.3984 234.9027 310.4927 227729.9516 10517.8669 453.3563 0.7450
## ------------------------------------------------------------------------------------------------------------------------------------------
## AIC: Akaike Information Criteria
## SBIC: Sawa's Bayesian Information Criteria
## SBC: Schwarz Bayesian Criteria
## MSEP: Estimated error of prediction, assuming multivariate normality
## FPE: Final Prediction Error
## HSP: Hocking's Sp
## APC: Amemiya Prediction Criteria
Исходя из обновленных данных вашей линейной регрессии, давайте сформулируем уравнение линейной регрессии и обсудим результаты t-статистики для каждого коэффициента.
\[ \text{Sales\_revenue} = -4.962 + 0.0004858 \times \text{Personal} - 0.1839341 \times \text{Invest\_it} + 1.2975620 \times \text{Export} \]
Исходя из обновленных результатов модели множественной линейной
регрессии, можно сделать следующие выводы относительно взаимосвязи между
выручкой от продаж (Sales_revenue) и переменными
Personal (количество персонала), Invest_it
(доля капиталовложений в ИТ) и Export (объем экспорта) для
отфильтрованного датасета data_new_filtered:
(Intercept) -4.9624587: Это значение интерсепта показывает ожидаемую выручку от продаж, когда все переменные равны 0. В данном контексте его значение не имеет существенного практического значения, поскольку такие условия нереалистичны для анализируемых компаний.
Personal 0.0004858: Коэффициент положительный, что указывает на прямую зависимость между количеством персонала и выручкой от продаж. Увеличение количества персонала на одну единицу приводит к росту выручки на 0.0004858 единиц. При p-value = 0.034711, этот коэффициент статистически значим.
Invest_it -0.1839341: Этот коэффициент отрицательный, но с p-value = 0.836682 он не является статистически значимым. Это означает, что изменения в доле капиталовложений в ИТ не оказывают заметного влияния на выручку в рамках данной модели.
Export 1.2975620: Коэффициент положительный и статистически значим (p-value = 0.000656), что свидетельствует о значимом влиянии объема экспорта на выручку. Увеличение экспорта на одну единицу ассоциируется с ростом выручки на 1.2975620 единиц.
R-квадрат (Multiple R-squared) 0.4605: Модель объясняет примерно 46.05% вариации выручки от продаж, что является достаточно сильным показателем для экономических данных.
Скорректированный R-квадрат (Adjusted R-squared) 0.3834: Учитывая количество переменных и размер выборки, корректировка показывает, что модель объясняет около 38.34% вариации выручки.
F-статистика 5.975 (p-value: 0.004134): Общая статистическая значимость модели подтверждена низким p-value, что указывает на то, что модель в целом эффективна для предсказания выручки от продаж.
Модель показывает значимое влияние количества персонала и объема экспорта на выручку от продаж, в то время как доля капиталовложений в ИТ не оказывает статистически значимого влияния в данной выборке. Это может указывать на то, что для увеличения выручки компаниям стоит сосредоточить внимание на расширении экспортных операций и оптимизации численности персонала.
vif_results <- ols_vif_tol(model_filtered)
print(vif_results)
## Variables Tolerance VIF
## 1 Personal 0.9322133 1.072716
## 2 Invest_it 0.9754056 1.025215
## 3 Export 0.9382734 1.065787
Исходя из результатов анализа мультиколлинеарности с помощью
коэффициентов VIF (Variance Inflation Factor) и толерантности,
полученных для модели множественной линейной регрессии
(model_filtered), можно сделать следующие выводы:
VIF (Variance Inflation Factor): Коэффициенты VIF для всех переменных находятся близко к 1, что указывает на отсутствие или низкий уровень мультиколлинеарности между независимыми переменными. Общепринято, что значения VIF более 5 или 10 указывают на высокую степень мультиколлинеарности, что может влиять на надежность оценок коэффициентов модели. В данном случае все значения VIF значительно ниже этих порогов, что свидетельствует о хороших свойствах модели с точки зрения мультиколлинеарности.
Толерантность: Аналогичным образом, значения толерантности для всех переменных близки к 1. Толерантность измеряет уровень линейной независимости переменной от остальных предикторов в модели. Значение толерантности менее 0.1 часто рассматривается как индикатор проблем мультиколлинеарности. В данном случае, все значения толерантности значительно выше этого порога, что также указывает на отсутствие проблем с мультиколлинеарностью.
Анализ VIF и толерантности для модели показывает, что
мультиколлинеарность между переменными Personal,
Invest_it, и Export отсутствует или
незначительна, что делает модель надежной для интерпретации влияния этих
переменных на выручку от продаж (Sales_revenue). Это
говорит о том, что каждая из переменных вносит уникальный вклад в
модель, и их взаимодействие не искажает оценки коэффициентов регрессии.
Таким образом, вы можете с уверенностью использовать эту модель для
анализа и принятия решений на основе полученных коэффициентов и
статистических значимостей.
library(plotly)
##
## Присоединяю пакет: 'plotly'
## Следующий объект скрыт от 'package:ggplot2':
##
## last_plot
## Следующий объект скрыт от 'package:stats':
##
## filter
## Следующий объект скрыт от 'package:graphics':
##
## layout
# Построение модели линейной регрессии с обновленными данными
model_filtered <- lm(Sales_revenue ~ Personal + Invest_it + Export, data = data_new_filtered)
# Получение предсказанных значений для визуализации на графике
data_new_filtered$predicted_sales_revenue <- predict(model_filtered, newdata = data_new_filtered)
# Создание трехмерного графика
fig <- plot_ly(data = data_new_filtered, x = ~Invest_it, y = ~Personal, z = ~predicted_sales_revenue,
type = 'scatter3d', mode = 'markers',
marker = list(size = 5,
color = ~predicted_sales_revenue,
colorscale = 'Viridis',
opacity = 0.8)) %>%
layout(title = "3D Scatter Plot of Predicted Sales Revenue",
scene = list(xaxis = list(title = 'Invest_it'),
yaxis = list(title = 'Personal'),
zaxis = list(title = 'Predicted Sales Revenue')))
# Показываем график
fig
# Вычисление доверительных интервалов для коэффициентов модели
confint(model_filtered, level = 0.95)
## 2.5 % 97.5 %
## (Intercept) -1.070800e+02 9.715510e+01
## Personal 3.838932e-05 9.331982e-04
## Invest_it -2.016633e+00 1.648764e+00
## Export 6.222915e-01 1.972833e+00
м >Доверительные интервалы для коэффициентов модели позволяют оценить точность оценок коэффициентов и дают диапазон значений, в которых мы можем ожидать нахождение истинных коэффициентов с уровнем доверия в 95%. Вот выводы, которые можно сделать на основе предоставленных интервалов:
Доверительные интервалы для коэффициентов моделина уровне доверия 95% показывают следующее:
(Intercept): Доверительный интервал свободного
члена пересекает ноль (-107.08, 97.155), что указывает на возможное
отсутствие статистической значимости. Это значит, что при отсутствии
всех предикторов (когда их значения равны нулю) нельзя надёжно
утверждать, будет ли среднее значение Sales_revenue
положительным или отрицательным.
Personal: Доверительный интервал для
Personal (0.0000384, 0.0009332) полностью находится в
положительной области и не пересекает ноль, что говорит о положительном
влиянии количества сотрудников на выручку от продаж. Увеличение
численности персонала на одного сотрудника ассоциируется с увеличением
выручки от продаж в пределах этого интервала.
Invest_it: Доверительный интервал для
Invest_it (-2.0166, 1.6488) включает ноль, что
свидетельствует об отсутствии статистической уверенности в том, как
именно инвестиции в IT влияют на выручку от продаж. Невозможно
утверждать, имеют ли инвестиции в IT положительное или отрицательное
влияние на выручку.
Export: Доверительный интервал для
Export (0.6223, 1.9728) также не пересекает ноль и
находится полностью в положительной области, указывая на статистически
значимое положительное влияние объема экспорта на выручку от
продаж.
В целом, данные интервалы указывают на то, что Personal
и Export являются статистически значимыми предикторами
Sales_revenue в модели, в то время как вклад
Invest_it не является статистически значимым на уровне
доверия 95%.
# Установка макета графика на 2x2
par(mfrow = c(2, 2))
# График остатков против подогнанных значений
plot(model_filtered, which = 1, col = "blue", pch = 20, main = "Остатки против подогнанных значений")
abline(h = 0, col = "red", lwd = 2) # Добавляем горизонтальную линию на уровне 0
# Q-Q plot остатков
plot(model_filtered, which = 2, col = "blue", pch = 20, main = "Q-Q plot остатков")
qqline(model$residuals, col = "red", lwd = 2) # Добавляем QQ-линию
# Масштабирование остатков по левереджу (Scale-Location plot)
plot(model_filtered, which = 3, col = "blue", pch = 20, main = "Scale-Location")
abline(h = 1, col = "red", lwd = 2) # Горизонтальная линия на уровне 1
# График расстояния Кука
plot(model_filtered, which = 4, col = "blue", pch = 20, main = "Влияние наблюдений (расстояние Кука)")
abline(h = 0.5, col = "red", lwd = 2, lty = 2) # Пунктирная линия на значимом уровне 0.5
# Возвращаем настройки par к исходным значениям
par(mfrow = c(1, 1), mar = c(5, 4, 4, 2) + 0.1)
# Дополнительные графики, если необходимо
# Гистограмма остатков
hist(model_filtered$residuals, main = "Гистограмма остатков", xlab = "Остатки", ylab = "Частота", col = "lightblue", border = "darkblue")
# График остатков
plot(model_filtered$residuals, type = "p", main = "График остатков", xlab = "Наблюдение", ylab = "Остатки", pch = 20, col = "darkgreen")
# Возвращение к исходным настройкам par
par(mfrow = c(1, 1))
# Дескриптивная статистика остатков
library(psych)
describe(model_filtered$residuals)
## vars n mean sd median trimmed mad min max range skew kurtosis
## X1 1 25 0 89.07 -0.13 -8.67 80.62 -146.8 240.85 387.65 0.97 0.76
## se
## X1 17.81
Исходя из диаграмм остатков вашей регрессионной модели, можно сделать следующие выводы:
#Тестируем остатки на соответствие нормальному распределению
shapiro.test(model_filtered$residuals)
##
## Shapiro-Wilk normality test
##
## data: model_filtered$residuals
## W = 0.91709, p-value = 0.044
# Тестируем остатки на независимость
DescTools::RunsTest(model_filtered$residuals)
##
## Runs Test for Randomness
##
## data: model_filtered$residuals
## runs = 9, m = 13, n = 12, p-value = 0.09953
## alternative hypothesis: true number of runs is not equal the expected number
## sample estimates:
## median(x)
## -0.1333328
#Тестируем остатки на автокорреляцию
durbinWatsonTest(model_filtered)
## lag Autocorrelation D-W Statistic p-value
## 1 -0.01722449 2.019437 0.76
## Alternative hypothesis: rho != 0
# Тест Брюша-Пагана остатков на гомоскедактичность
ncvTest(model_filtered)
## Non-constant Variance Score Test
## Variance formula: ~ fitted.values
## Chisquare = 0.3510858, Df = 1, p = 0.5535
Тест на нормальность остатков (Тест Шапиро-Уилка): Результаты теста показывают статистически значимое отклонение остатков от нормального распределения (p = 0.044). Следовательно, нулевая гипотеза о нормальности распределения остатков отвергается.
Тест на независимость остатков (Тест на случайность “Runs Test”): Несмотря на некоторые отклонения от предполагаемой случайности, результаты этого теста не достигают уровня статистической значимости (p = 0.09953). Это означает, что нет достаточных доказательств против гипотезы о случайности остатков.
Тест на автокорреляцию остатков (Тест Дарбина-Уотсона): Статистика D-W не позволяет отвергнуть нулевую гипотезу о отсутствии автокорреляции в остатках (p-value > 0.05), что указывает на отсутствие значимой автокорреляции на первом лаге.
Тест Бройша-Пагана на гомоскедастичность остатков: Результаты теста не достигают статистической значимости (p = 0.5535), что указывает на отсутствие значительных доказательств против гипотезы о гомоскедастичности остатков.
# Исходная модель
model <- lm(Sales_revenue ~ Personal +Invest_it+ Export, data = data_new)
# Перестроение модели без наблюдений 10, 4 и 11
data_new_filtered <- data_new[-c(10, 4, 11), ]
model_filtered <- lm(Sales_revenue ~ Personal+Invest_it+ Export, data = data_new_filtered)
# Создание новых данных для прогноза
new_data <- data.frame(
Personal = seq(min(data_new_filtered$Personal), max(data_new_filtered$Personal), length.out = 10),
Invest_it = seq(min(data_new_filtered$Invest_it), max(data_new_filtered$Invest_it), length.out = 10),
Export = seq(min(data_new_filtered$Export), max(data_new_filtered$Export), length.out = 10)
)
# Делаем прогнозы с 95% доверительным интервалом
predictions_conf <- predict(model_filtered, newdata = new_data, interval = "confidence", level = 0.95)
# Делаем прогнозы с 95% предсказательным интервалом
predictions_pred <- predict(model_filtered, newdata = new_data, interval = "prediction", level = 0.95)
# Визуализация прогнозов с использованием plotly
library(plotly)
fig <- plot_ly() %>%
add_markers(x = ~new_data$Personal, y = ~predictions_conf[, "fit"], name = 'Fitted values') %>%
add_lines(x = ~new_data$Personal, y = ~predictions_conf[, "lwr"], name = 'Lower CI', line = list(dash = 'dash')) %>%
add_lines(x = ~new_data$Personal, y = ~predictions_conf[, "upr"], name = 'Upper CI', line = list(dash = 'dash')) %>%
add_lines(x = ~new_data$Personal, y = ~predictions_pred[, "lwr"], name = 'Lower PI', line = list(dash = 'dot')) %>%
add_lines(x = ~new_data$Personal, y = ~predictions_pred[, "upr"], name = 'Upper PI', line = list(dash = 'dot')) %>%
layout(title = "95% Confidence and Prediction Intervals",
xaxis = list(title = "Personal"),
yaxis = list(title = "Sales Revenue"),
legend = list(x = 0.1, y = 0.9))
# Вывод графика
fig
# Предположим, что model_filtered уже построена с исключением некоторых наблюдений
# Создаем новый набор данных для прогнозирования
new_data <- data.frame(
Personal = c(4000, 6000),
Invest_it = c(1, 2),
Export = c(1, 2)
)
# Делаем прогноз с 95% доверительными интервалами
conf_pred <- predict(model_filtered, newdata = new_data, interval = "confidence")
# Делаем прогноз с 95% предсказательными интервалами
pred_pred <- predict(model_filtered, newdata = new_data, interval = "prediction")
# Объединяем результаты для удобства
predictions <- data.frame(conf_pred, pred_pred[,c("lwr", "upr")])
colnames(predictions) <- c("fit", "lwr_conf", "upr_conf", "lwr_pred", "upr_pred")
# Выводим предсказания
print(predictions)
## fit lwr_conf upr_conf lwr_pred upr_pred
## 1 18.46755 -79.82879 116.7639 -207.2950 244.2301
## 2 20.00935 -76.81475 116.8335 -205.1161 245.1348
Исходя из проведенного прогноза с помощью модели
model_filtered, мы получили два набора предсказаний для
новых данных. Эти данные содержат значения для переменных
Personal, Invest_it, и Export.
Предсказания включают оценки выручки (fit), 95%
доверительные интервалы (lwr_conf, upr_conf) и
95% предиктивные интервалы (lwr_pred,
upr_pred). Вот вывод по полученным результатам:
fit) составляет
примерно 18.47.Personal, Invest_it, и
Export лежит в этом интервале.fit) составляет
примерно 20.01.Для выполнения полного кластерного анализа для вашей таблицы
data_new, содержащей только количественные переменные
(Sales_revenue, Invest_it,
Personal, Export), мы пройдем через несколько
этапов: подготовка данных, стандартизация, определение оптимального
количества кластеров и непосредственно кластеризация. После
кластеризации мы также визуализируем результаты.
# Установка и загрузка необходимых пакетов
if(!require('dplyr')) install.packages('dplyr'); library(dplyr)
if(!require('cluster')) install.packages('cluster'); library(cluster)
## Загрузка требуемого пакета: cluster
if(!require('factoextra')) install.packages('factoextra'); library(factoextra)
## Загрузка требуемого пакета: factoextra
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
# Подготовка данных: выбор только количественных переменных и удаление пропусков
data_new_clean <- data_new %>%
select(Sales_revenue, Invest_it, Personal, Export) %>%
na.omit()
# Стандартизация данных
data_scaled <- scale(data_new_clean)
# WSS
fviz_nbclust(data_scaled, kmeans, method = "wss") +
labs(title = "Метод 'локтя' для WSS", x = "Количество кластеров", y = "WSS")
# Gap Statistic
gap_stat <- clusGap(data_scaled, FUN = kmeans, nstart = 25, K.max = 10, B = 50)
fviz_gap_stat(gap_stat) +
labs(title = "Gap Statistic", x = "Количество кластеров", y = "Gap Statistic")
Предположим, что на основе предыдущих шагов оптимальное количество кластеров определено как 4.
`
set.seed(1)
# Проведение кластеризации K-средних с определенным оптимальным числом кластеров
km <- kmeans(data_scaled, centers = 3, nstart = 25)
# Просмотр результатов кластеризации
print(km)
## K-means clustering with 3 clusters of sizes 22, 2, 5
##
## Cluster means:
## Sales_revenue Invest_it Personal Export
## 1 -0.4036935 -0.1904682 -0.2408654 -0.4007745
## 2 1.5460182 1.4471826 3.4689330 -0.2596208
## 3 1.1578443 0.2591872 -0.3277655 1.8672561
##
## Clustering vector:
## [1] 3 3 1 2 3 1 3 1 1 3 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
##
## Within cluster sum of squares by cluster:
## [1] 27.164946 6.625357 10.836171
## (between_SS / total_SS = 60.2 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
set.seed(123)
km_res <- kmeans(data_scaled, centers = 3, nstart = 25)
# Общая внутрикластерная сумма квадратов
print(km$tot.withinss)
## [1] 44.62647
# Детальный вывод результатов
cat("Внутрикластерная сумма квадратов по кластерам:", km$withinss, "\n")
## Внутрикластерная сумма квадратов по кластерам: 27.16495 6.625357 10.83617
cat("Общая внутрикластерная сумма квадратов:", km$tot.withinss, "\n")
## Общая внутрикластерная сумма квадратов: 44.62647
cat("Размеры кластеров:", km$size, "\n")
## Размеры кластеров: 22 2 5
# Средние значения по кластерам
mean.km <- aggregate(data_new_clean, by = list(cluster = km$cluster), FUN = mean)
print(mean.km)
## cluster Sales_revenue Invest_it Personal Export
## 1 1 106.3312 12.66773 182268.2 28.43182
## 2 2 425.3570 52.76000 1950000.0 36.65000
## 3 3 361.8412 23.67600 140860.0 160.48000
fviz_cluster(km_res, data = data_scaled, geom = "point", stand = FALSE) +
labs(title = "Визуализация результатов кластеризации K-средних") +
theme_minimal()
# Вывод различных ключевых элементов модели k-средних для data_new
print("Кластеры:")
## [1] "Кластеры:"
print(km_res$cluster) # Показывает, к какому кластеру отнесена каждая точка данных в data_new
## [1] 2 2 1 3 2 1 2 1 1 2 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
print("Центры кластеров:")
## [1] "Центры кластеров:"
print(km_res$centers) # Показывает координаты центров каждого кластера для data_new
## Sales_revenue Invest_it Personal Export
## 1 -0.4036935 -0.1904682 -0.2408654 -0.4007745
## 2 1.1578443 0.2591872 -0.3277655 1.8672561
## 3 1.5460182 1.4471826 3.4689330 -0.2596208
print("Общая сумма квадратов (Total sum of squares):")
## [1] "Общая сумма квадратов (Total sum of squares):"
print(km_res$totss)
## [1] 112
print("Внутрикластерные суммы квадратов (Within-cluster sum of squares by cluster):")
## [1] "Внутрикластерные суммы квадратов (Within-cluster sum of squares by cluster):"
print(km_res$withinss)
## [1] 27.164946 10.836171 6.625357
print("Общая внутрикластерная сумма квадратов (Total within-cluster sum of squares):")
## [1] "Общая внутрикластерная сумма квадратов (Total within-cluster sum of squares):"
print(km_res$tot.withinss)
## [1] 44.62647
print("Межкластерная сумма квадратов (The between-cluster sum of squares):")
## [1] "Межкластерная сумма квадратов (The between-cluster sum of squares):"
print(km_res$betweenss)
## [1] 67.37353
print("Размеры кластеров (The number of points in each cluster):")
## [1] "Размеры кластеров (The number of points in each cluster):"
print(km_res$size)
## [1] 22 5 2
print("Количество итераций (The number of iterations required):")
## [1] "Количество итераций (The number of iterations required):"
print(km_res$iter)
## [1] 3
Методы “локтя” и “Gap Statistic” были использованы для определения оптимального количества кластеров. Оба метода предложили разное количество кластеров, и на основании этих предложений было решено использовать 3 кластера для дальнейшего анализа.
Проведенная кластеризация с тремя кластерами привела к следующим результатам:
Размеры кластеров:
Эти размеры указывают на то, что большинство данных сгруппировано в первом кластере, в то время как второй и третий кластеры содержат меньше наблюдений.
Средние значения по кластерам:
Это показывает, что кластеры могут представлять различные бизнес-стратегии или стадии роста компаний.
Внутрикластерная сумма квадратов:
Межкластерная сумма квадратов:
Количество итераций:
Визуализация кластеров с помощью fviz_cluster показала
распределение стандартизированных значений переменных по кластерам и
позволила визуально оценить их различия.
Профиль: Этот кластер может представлять компании с более консервативной моделью бизнеса, где фокус на внутреннем рынке и меньших инвестициях в ИТ. Это могут быть устоявшиеся компании с традиционными бизнес-процессами, возможно, с низкой степенью цифровизации.
Профиль: Кластер скорее всего состоит из крупных корпораций, которые могут быть лидерами в своих отраслях. Они инвестируют в ИТ и имеют большую рабочую силу, что может указывать на их масштаб и способность к инновациям и экспансии.
Профиль: Компании этого кластера могут специализироваться на международной торговле и экспорте. Несмотря на более малочисленный персонал, эти компании демонстрируют высокие продажи, что может говорить о высокой производительности и эффективности работы.
На основании кластерного анализа можно сделать вывод, что в выборке присутствуют группы компаний с различными характеристиками в плане выручки от продаж, инвестиций в ИТ, количества персонала и объема экспорта. Определенные кластеры могут указывать на разные бизнес-модели или стратегии развития в выборке ТНК.
Объединяя результаты кластерного анализа и множественной регрессии, можно сформировать всесторонний экономический вывод о поведении компаний на рынке. Кластерный анализ выявил группы компаний с различными характеристиками и стратегиями: от небольших предприятий с ограниченной выручкой и экспортом до крупных игроков с значительными инвестициями в персонал и технологии. Это разнообразие подчеркивает, что отраслевой успех может быть результатом различных бизнес-моделей и стратегий роста, а также адаптации к рыночным условиям и способности к инновациям. Множественная регрессия показала, что персонал и экспортные операции играют важную роль в увеличении выручки, тогда как инвестиции в ИТ не продемонстрировали значимого влияния в данной модели. Это говорит о том, что для компаний может быть выгодно инвестировать в развитие квалификации персонала и расширение международных рынков. С другой стороны, важно не просто увеличивать инвестиции в ИТ, но и стремиться к их эффективному применению для повышения операционной эффективности и открытия новых рыночных возможностей. Тот факт, что модель охватывает только 46% вариации в выручке, указывает на то, что существуют и другие значимые факторы, не включенные в текущий анализ, которые могут оказывать влияние на финансовые результаты компаний. Это могут быть такие элементы, как рыночные тенденции, конкуренция, инновации, бренд и корпоративная репутация, качество продукции или услуг, а также макроэкономические условия. В целом, представленные данные и анализ подсказывают, что руководству компаний следует уделить внимание комплексному подходу к стратегическому планированию. Это включает инвестирование в человеческий капитал, эксплуатацию глобальных экспортных возможностей и целенаправленное использование технологических инвестиций для достижения конкурентного преимущества и устойчивого роста. Следует также учитывать риск возможных выбросов и искажений, обнаруженных в диаграммах остатков, и рассмотреть возможность дальнейшего углубленного анализа для более точной настройки стратегических инициатив.